Skip to content

Comments

fix(source-intercom): Block simultaneous reading from companies endpoint#71141

Open
Anatolii Yatsuk (tolik0) wants to merge 3 commits intomasterfrom
tolik0/source-intercom/add-block-simultaneous-read-from-companies-endpoint
Open

fix(source-intercom): Block simultaneous reading from companies endpoint#71141
Anatolii Yatsuk (tolik0) wants to merge 3 commits intomasterfrom
tolik0/source-intercom/add-block-simultaneous-read-from-companies-endpoint

Conversation

@tolik0
Copy link
Contributor

@tolik0 Anatolii Yatsuk (tolik0) commented Jan 6, 2026

What

Resolves: https://github.com/airbytehq/oncall/issues/8346

Fixes API errors in source-intercom caused by duplicate concurrent requests to the companies endpoint. The issue occurred when the companies stream was being read both as a standalone stream and as a parent stream for substreams (like company_segments), resulting in simultaneous API calls that the Intercom API rejected.

How

Added block_simultaneous_read: "companies" to the companies stream configuration in manifest.yaml. This uses the new CDK feature (introduced in airbytehq/airbyte-python-cdk#870) that prevents streams with the same blocking group name from running concurrently.

What happens now:

  • When companies is selected as a standalone stream, it runs normally
  • When companies is used as a parent stream (for substreams), it's also marked active
  • If both scenarios occur in the same sync, the CDK ensures they don't run simultaneously
  • The second request is deferred until the first completes, eliminating duplicate concurrent API calls

Review guide

User Impact

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /bump-progressive-rollout-version - Bumps connector version with an RC suffix for progressive rollouts.
    • Creates a release candidate version (e.g., 2.16.10-rc.1) with enableProgressiveRollout: true
    • Example: /bump-progressive-rollout-version changelog="Add new feature for progressive rollout"
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /run-regression-tests - Runs regression tests for the modified connector(s).
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
  • Connector release lifecycle (AI-powered):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-release-watch - Monitors rollout post-release and tracks sync success rates.
  • Documentation:
    • /ai-docs-review - Provides AI-powered documentation recommendations for PRs with connector changes.
  • JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
    • /bump-bulk-cdk-version bump=patch changelog='foo' - Bump the Bulk CDK's version. bump can be major/minor/patch.
  • Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.

📝 Edit this welcome message.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

source-intercom Connector Test Results

13 tests   9 ✅  13s ⏱️
 2 suites  4 💤
 2 files    0 ❌

Results for commit c7d14c0.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

Deploy preview for airbyte-docs ready!

✅ Preview
https://airbyte-docs-femaaok4l-airbyte-growth.vercel.app

Built with commit c7d14c0.
This pull request is being automatically deployed with vercel-action

@ian-at-airbyte
Copy link
Contributor

Ian Alton (ian-at-airbyte) commented Jan 6, 2026

/ai-docs-review

AI Docs Review Started

Analyzing connector changes and preparing documentation recommendations.
View workflow run
AI Docs Review Failed

An error occurred while processing the documentation review. Please check the workflow logs for details.
View workflow run

@tolik0
Copy link
Contributor Author

Anatolii Yatsuk (tolik0) commented Jan 7, 2026

/build-connector-images

Connector Image Build Started

  • This workflow will build the connector image and run basic tests.
  • The connector image(s) will be pushed to the GitHub Container Registry.

Check job output.
Connector Image Builds job completed. See logs for details.

@tolik0
Copy link
Contributor Author

Anatolii Yatsuk (tolik0) commented Jan 7, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-intercom.
PR: #71141

Pre-release versions will be tagged as {version}-preview.5250fc1
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-intercom:0.13.16-rc.2-preview.5250fc1

Docker Hub: https://hub.docker.com/layers/airbyte/source-intercom/0.13.16-rc.2-preview.5250fc1

Registry JSON:

@ian-at-airbyte
Copy link
Contributor

Ian Alton (ian-at-airbyte) commented Jan 7, 2026

/ai-docs-review

AI Docs Review Started

Analyzing connector changes and preparing documentation recommendations.
View workflow run
AI Docs Review session starting... Analyzing connector changes and preparing documentation recommendations.

Devin AI session created successfully!

@devin-ai-integration
Copy link
Contributor

Documentation Review

Overall Assessment: The PR correctly implements a fix for concurrent API access issues but includes a changelog entry with an incorrect PR reference. The existing documentation does not mention the companies endpoint concurrency limitation, which could be valuable for users troubleshooting sync issues.

High Priority (Correctness Issues)
Completeness Gaps
  • Missing: The "Performance considerations" section does not mention the companies endpoint concurrency limitation

    • Why it matters: Users running multiple syncs simultaneously or syncing both companies and company_segments streams may encounter errors without understanding why. The connector's error handler already documents this at manifest.yaml lines 277-278: "Intercom API does not allow for you to run the Companies or Company Parts streams in parallel."
    • Suggested addition: Consider adding a note to the "Performance considerations" section:
      The Intercom API's companies scroll endpoint does not support concurrent access. If you sync both the `companies` stream and its child stream `company_segments` simultaneously, the connector automatically serializes these requests to avoid API errors. Running multiple Intercom syncs in parallel for the same workspace may result in errors.
  • Missing: The tickets stream is defined in the manifest but not documented in the "Supported Streams" section

    • Why it matters: Users may not discover this available stream
    • Suggested addition: Add to the Supported Streams list:
      - [Tickets](https://developers.intercom.com/docs/references/2.11/rest-api/api.intercom.io/tickets/searchtickets) \(Incremental\)
Readability/Organization

Documentation is well-organized and clear. No issues found.

Style Nits
  • The API version references in the Supported Streams section are inconsistent (mix of 2.9, 2.10, and unversioned links). Consider updating all links to reference the current API version 2.11 that the connector uses.

Summary of Recommended Changes

  1. Fix the changelog PR reference from fix(source-intercom): Fix Companies stream pagination by removing custom components and disable caching #70335 to fix(source-intercom): Block simultaneous reading from companies endpoint #71141 (this is a correctness issue)
  2. Consider adding the tickets stream to the Supported Streams documentation
  3. Consider documenting the companies endpoint concurrency limitation in the Performance considerations section

This review was generated by Devin. View session

@tolik0
Copy link
Contributor Author

Anatolii Yatsuk (tolik0) commented Jan 12, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-intercom.
PR: #71141

Pre-release versions will be tagged as {version}-preview.c7d14c0
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-intercom:0.13.16-rc.2-preview.c7d14c0

Docker Hub: https://hub.docker.com/layers/airbyte/source-intercom/0.13.16-rc.2-preview.c7d14c0

Registry JSON:

@tolik0
Copy link
Contributor Author

Anatolii Yatsuk (tolik0) commented Jan 13, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-intercom.
PR: #71141

Pre-release versions will be tagged as {version}-preview.558656f
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-intercom:0.13.16-rc.2-preview.558656f

Docker Hub: https://hub.docker.com/layers/airbyte/source-intercom/0.13.16-rc.2-preview.558656f

Registry JSON:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants